home *** CD-ROM | disk | FTP | other *** search
- /* Program EX_0401.C
- Listing 6C - see documentation in TUTOR.SSS
- */
-
- #include "SSSC.H"
-
- #define ARRIVL 1
- #define TRYBUY 2
- #define REPLNS 3
-
- #define CUSTMR 0
- #define GOODS 1
-
- int c, ecode;
-
- void prime(void)
- {
- INIQUE(0, 0, 2);
- INISTA(1, "Out of stock", 0, 0, 0.0, 0.0);
- INISTA(2, "Ave stock", 1, 0, 0.0, 0.0);
- SIMEND(40.0);
- CREATE(EX(2.0), 0);
- c = 15;
- TALLY(2, c);
- }
-
- void buying()
- {
- if (c == 4) CREATE(TR(5.0, 7.0, 9.0), GOODS);
- if (c > 0) c--; else TALLY(1, 1.0);
- TALLY(2, c);
- DISPOS();
- }
-
- void order(void)
- {
- c += 12;
- TALLY(2, c);
- DISPOS();
- }
-
- main()
- {
- prime();
-
- do
- {
- if ((ecode = NEXTEV()) > 0)
- switch (ecode)
- {
- case ARRIVL:
- if (IDE() == CUSTMR)
- {
- CREATE(EX(2), 0);
- SCHED(0.0, TRYBUY, IDE());
- } else
- SCHED(0.0, REPLNS, IDE());
- break;
-
- case TRYBUY:
- buying();
- break;
-
- case REPLNS:
- order();
- break;
- }
- } while(ecode);
-
- SUMRY("");
-
- }
-